Verifying Concurrent Graph Algorithms
نویسندگان
چکیده
We show how to verify four challenging concurrent ne-grained graph-manipulating algorithms, including graph copy, a speculativelyparallel Dijkstra and spanning tree. We develop a method of reasoning for such algorithms that dynamically tracks the contributions and responsibilities of each thread operating on a graph, even in cases of arbitrary recursive thread creation. We demonstrate how to use abstract reasoning in the style of iCAP without needing to incorporate any associated support in the underlying semantic model of the logic.
منابع مشابه
Using SPIN to Model Check Concurrent Algorithms, using a translation from C to Promela
This paper addresses the problem of automatically verifying correctness of concurrent algorithms, e.g., as found in concurrent implementations of common data structures, using model checking. In order to use a model checker to analyze programs in, e.g., C, one must first translate programs to the input language of the model checker. Since our aim is to use SPIN, we present an automated translat...
متن کاملFinite - State Concurrent Systems ?
Temporal logic model checking is an automatic technique for verifying nite-state concurrent systems. Speciications are expressed in a propositional temporal logic, and the concurrent system is modeled as a state-transition graph. An eecient search procedure is used to determine whether or not the state-transition graph sat-isses the speciication. When the technique was rst developed ten years a...
متن کاملAutomatically Verifying Concurrent Queue Algorithms
Concurrent FIFO queues are a common component of concurrent systems. Using a single shared lock to prevent concurrent manipulations of queue contents reduces system concurrency. Therefore, many algorithms were suggested to increase concurrency while maintaining the correctness of queue manipulations. This paper shows how to automatically verify partial correctness of concurrent FIFO queue algor...
متن کاملComparison Under Abstraction for Verifying Linearizability
Linearizability is one of the main correctness criteria for implementations of concurrent data structures. A data structure is linearizable if its operations appear to execute atomically. Verifying linearizability of concurrent unbounded linked data structures is a challenging problem because it requires correlating executions that manipulate (unbounded-size) memory states. We present a static ...
متن کاملON PROVING PROPERTIES OF CONCURRENT ALGORITHMS FOR DISTRIBUTED CSPs
Because of social, economical and technical reasons, some years ago the classical CSP model has been extended to the model of Distributed Constraint Satisfaction Problems (DCSPs) in which several computational agents try to solve a connected CSP collectively. Many recent systems tackling this problem lack a theoretically founded specification and safety or liveness property proofs. This may be ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2016